Identification using spectroscopy

ABSTRACT

A device may receive information identifying results of a spectroscopic measurement of an unknown sample. The device may perform a first classification of the unknown sample based on the results of the spectroscopic measurement and a global classification model. The device may generate a local classification model based on the first classification. The device may perform a second classification of the unknown sample based on the results of the spectroscopic measurement and the local classification model. The device may provide information identifying a class associated with the unknown sample based on performing the second classification.

RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.16/405,050, filed on May 7, 2019, which is a continuation of U.S.application Ser. No. 15/247,554, filed on Aug. 25, 2016 (now U.S. Pat.No. 10,309,894), which claims priority under 35 U.S.C. § 119 to U.S.Provisional Patent Application No. 62/210,198 filed on Aug. 26, 2015,the contents of which are incorporated by reference herein in theirentireties.

BACKGROUND

Raw material identification may be utilized for quality-control ofpharmaceutical products. For example, raw material identification may beperformed on a medical compound to determine whether componentingredients of the medical compound correspond to a packaging labelassociated with the medical compound. Spectroscopy may facilitatenon-destructive raw material identification with reduced preparation anddata acquisition time relative to other chemistry techniques.

SUMMARY

According to some possible implementations, a device may include one ormore processors. The one or more processors may receive informationidentifying results of a spectroscopic measurement of an unknown sample.The one or more processors may perform a first classification of theunknown sample based on the results of the spectroscopic measurement anda global classification model. The global classification model mayutilize a support vector machine (SVM) classifier technique. The globalclassification model may include a global set of classes. The one ormore processors may generate a local classification model based on thefirst classification. The local classification model may utilize the SVMclassifier technique. The local classification model may include asubset of classes of the global set of classes. The one or moreprocessors may perform a second classification of the unknown samplebased on the results of the spectroscopic measurement and the localclassification model. The one or more processors may provide informationidentifying a class, of the subset of classes, associated with theunknown sample based on performing the second classification.

According to some possible implementations, a computer-readable mediummay store instructions, that when executed by one or more processors,may cause the one or more processors to receive information identifyingresults of a set of spectroscopic measurements of an unknown set. Theunknown set may include a set of unknown samples. The one or moreinstructions, when executed by one or more processors, may cause the oneor more processors to perform a first classification of the set ofunknown samples based on the results of the set of spectroscopicmeasurements and a global classification model. The globalclassification model may utilize a support vector machine (SVM) linearclassifier technique. The one or more instructions, when executed by oneor more processors, may cause the one or more processors to generate aset of local classification models for the set of unknown samples basedon the first classification. The set of local classification models mayutilize the SVM linear classifier technique. The one or moreinstructions, when executed by one or more processors, may cause the oneor more processors to perform a second classification of the set ofunknown samples based on the results of the set of spectroscopicmeasurements and the set of local classification models. The one or moreinstructions, when executed by one or more processors, may cause the oneor more processors to provide information identifying classifications ofthe set of unknown samples based on performing the secondclassification.

According to some possible implementations, a method may includereceiving, by a device, information identifying results of aspectroscopic measurement of an unknown sample performed by a firstspectrometer. The method may include performing, by the device, a firstclassification of the unknown sample based on the results of thespectroscopic measurement and a global classification model. The globalclassification model may be generated by utilizing a support vectormachine (SVM) classifier technique and a set of spectroscopicmeasurements performed by a second spectrometer. The method may includegenerating, by the device, a local classification model based on thefirst classification. The local classification model may utilize the SVMclassifier technique. The local classification model may include asubset of classes of a set of classes of the global classificationmodel. The method may include performing by the device, a secondclassification of the unknown sample based on the results of thespectroscopic measurement and the local classification model. The methodmay include providing, by the device, information identifying a class,of the subset of classes, associated with the unknown sample based onperforming the second classification.

BRIEF DESCRIPTION OF THE DRAWINGS

FIGS. 1A and 1B are diagrams of an overview of an example implementationdescribed herein;

FIG. 2 is a diagram of an example environment in which systems and/ormethods, described herein, may be implemented;

FIG. 3 is a diagram of example components of one or more devices of FIG.2 ;

FIG. 4 is a flow chart of an example process for generating a globalclassification model for raw material identification based on a supportvector machine classifier;

FIG. 5 is a diagram of an example implementation relating to the exampleprocess shown in FIG. 4 ;

FIG. 6 is a flow chart of an example process for performing raw materialidentification using a multi-stage classification technique;

FIGS. 7A and 7B are diagrams of an example implementation relating to aprediction success rate associated with the example process shown inFIG. 6 ; and

FIGS. 8A and 8B are diagrams of an example implementation relating tothe example process shown in FIG. 6 .

DETAILED DESCRIPTION

The following detailed description of example implementations refers tothe accompanying drawings. The same reference numbers in differentdrawings may identify the same or similar elements.

Raw material identification (RMID) is a technique utilized to identifycomponents (e.g., ingredients) of a particular sample foridentification, verification, or the like. For example, RMID may beutilized to verify that ingredients in a pharmaceutical compoundcorrespond to a set of ingredients identified on a label. A spectrometermay be utilized to perform spectroscopy on a sample (e.g., thepharmaceutical compound) to determine components of the sample. Thespectrometer may determine a set of measurements of the sample and mayprovide the set of measurements for classification. A chemometricclassification technique (e.g., a classifier) may facilitatedetermination of the components of the sample based on the set ofmeasurements of the sample. However, some chemometric classificationtechniques may be associated with poor transferability, insufficientgranularity for performing large-scale classification, or the like,relative to other techniques. Implementations, described herein, mayutilize a hierarchical support vector machine classifier to facilitateRMID. In this way, a control device of a spectrometer facilitatesimproved classification accuracy relative to other RMID techniques.

FIGS. 1A and 1B are diagrams of an overview of an example implementation100 described herein. As shown in FIG. 1A, example implementation 100may include a first control device and a first spectrometer. The firstcontrol device may cause the first spectrometer to perform a set ofspectroscopic measurements on a training set (e.g., a set of knownsamples utilized for training a classification model). The training setmay be selected to include a threshold quantity of samples for eachclass of the classification model. A class of the classification modelmay refer to a grouping of similar compounds that share one or morecharacteristics in common, such as (in a pharmaceutical context) lactosecompounds, fructose compounds, acetaminophen compounds, ibuprophencompounds, aspirin compounds, or the like.

As further shown in FIG. 1A, the first spectrometer may perform the setof spectroscopic measurements on the training set based on receiving aninstruction from the first control device. For example, the firstspectrometer may determine a spectrum for each sample of the trainingset. The first spectrometer may provide the set of spectroscopicmeasurements to the first control device. The first control device maygenerate a global classification model using a particular classificationtechnique and based on the set of spectroscopic measurements. Forexample, the first control device may generate the global classificationmodel using a support vector machine (SVM) technique (e.g., a machinelearning technique for information classification). The globalclassification model may include information associated with assigning aparticular spectrum to a particular class, and may include informationassociated with identifying a type of compound that is associated withthe particular class. In this way, a control device can provideinformation identifying a type of compound of an unknown sample based onassigning a spectrum of the unknown sample to a particular class. Theglobal classification model may be stored via a data structure, providedto one or more other control devices, or the like.

As shown in FIG. 1B, a second control device may receive the globalclassification model (e.g., from the first control device), and maystore the global classification model via a data structure. The secondcontrol device may cause a second spectrometer to perform a set ofspectroscopic measurements on an unknown set (e.g., a set of unknownsamples for which RMID is to be performed). The second spectrometer mayperform the set of spectroscopic measurements based on receiving aninstruction from the second control device. For example, the secondspectrometer may determine a spectrum for each sample of the unknownset. The second spectrometer may provide the set of spectroscopicmeasurements to the second control device. The second control device mayperform RMID on the unknown set based on the global classification modelusing a multi-stage classification technique.

With regard to FIG. 1B, the second control device may perform a firstclassification of a particular sample of the unknown set using theglobal classification model. The second control device may determine aset of confidence metrics associated with the particular sample and theglobal classification model. A confidence metric may refer to aconfidence associated with assigning the particular sample to aparticular class. For example, the second control device may determine aconfidence metric associated with the particular sample and each classof the global classification model. The second control device may selecta subset of classes of the global classification model based on the oneor more respective confidence metrics, and may generate a localclassification model based on the set of classes. The localclassification model may refer to an in situ classification model thatis generated using the SVM technique and the subset of classes. Thesecond control device may perform a second classification based on thelocal classification model to assign the particular sample to aparticular class. In this way, the second control device performs RMIDfor a particular sample of the unknown set with improved accuracyrelative to other classification models and/or single stageclassification techniques. The second control device may perform a firstclassification and a second classification for each sample of theunknown set to identify each sample of the unknown set. In anotherexample, the first control device may classify the particular sampleusing a global classification model and a local classification modelbased on spectroscopy performed by the first spectrometer.

FIG. 2 is a diagram of an example environment 200 in which systemsand/or methods, described herein, may be implemented. As shown in FIG. 2, environment 200 may include a control device 210, a spectrometer 220,and a network 230. Devices of environment 200 may interconnect via wiredconnections, wireless connections, or a combination of wired andwireless connections.

Control device 210 may include one or more devices capable of storing,processing, and/or routing information associated with RMID. Forexample, control device 210 may include a server, a computer, a wearabledevice, a cloud computing device, or the like that generates a modelbased on a classifier and a set of measurements of a training set, andutilizes the model to perform RMID based on a set of measurements of anunknown set. In some implementations, control device 210 may beassociated with a particular spectrometer 220. In some implementations,control device 210 may be associated with multiple spectrometers 220. Insome implementations, control device 210 may receive information fromand/or transmit information to another device in environment 200, suchas spectrometer 220.

Spectrometer 220 may include one or more devices capable of performing aspectroscopic measurement on a sample. For example, spectrometer 220 mayinclude a spectrometer device that performs spectroscopy (e.g.,vibrational spectroscopy, such as a near infrared (NIR) spectrometer, amid-infrared spectroscopy (mid-IR), Raman spectroscopy, or the like). Insome implementations, spectrometer 220 may be incorporated into awearable device, such as a wearable spectrometer or the like. In someimplementations, spectrometer 220 may receive information from and/ortransmit information to another device in environment 200, such ascontrol device 210.

Network 230 may include one or more wired and/or wireless networks. Forexample, network 230 may include a cellular network (e.g., a long-termevolution (LTE) network, a 3G network, a code division multiple access(CDMA) network, etc.), a public land mobile network (PLMN), a local areanetwork (LAN), a wide area network (WAN), a metropolitan area network(MAN), a telephone network (e.g., the Public Switched Telephone Network(PSTN)), a private network, an ad hoc network, an intranet, theInternet, a fiber optic-based network, a cloud computing network, or thelike, and/or a combination of these or other types of networks.

The number and arrangement of devices and networks shown in FIG. 2 areprovided as an example. In practice, there may be additional devicesand/or networks, fewer devices and/or networks, different devices and/ornetworks, or differently arranged devices and/or networks than thoseshown in FIG. 2 . Furthermore, two or more devices shown in FIG. 2 maybe implemented within a single device, or a single device shown in FIG.2 may be implemented as multiple, distributed devices. For example,although control device 210 and spectrometer 220 are described, herein,as being two separate devices, control device 210 and spectrometer 220may be implemented within a single device. Additionally, oralternatively, a set of devices (e.g., one or more devices) ofenvironment 200 may perform one or more functions described as beingperformed by another set of devices of environment 200.

FIG. 3 is a diagram of example components of a device 300. Device 300may correspond to control device 210 and/or spectrometer 220. In someimplementations, control device 210 and/or spectrometer 220 may includeone or more devices 300 and/or one or more components of device 300. Asshown in FIG. 3 , device 300 may include a bus 310, a processor 320, amemory 330, a storage component 340, an input component 350, an outputcomponent 360, and a communication interface 370.

Bus 310 may include a component that permits communication among thecomponents of device 300. Processor 320 is implemented in hardware,firmware, or a combination of hardware and software. Processor 320 mayinclude a processor (e.g., a central processing unit (CPU), a graphicsprocessing unit (GPU), an accelerated processing unit (APU), etc.), amicroprocessor, and/or any processing component (e.g., afield-programmable gate array (FPGA), an application-specific integratedcircuit (ASIC), etc.) that interprets and/or executes instructions. Insome implementations, processor 320 may include one or more processorsthat can be programmed to perform a function. Memory 330 may include arandom access memory (RAM), a read only memory (ROM), and/or anothertype of dynamic or static storage device (e.g., a flash memory, amagnetic memory, an optical memory, etc.) that stores information and/orinstructions for use by processor 320.

Storage component 340 may store information and/or software related tothe operation and use of device 300. For example, storage component 340may include a hard disk (e.g., a magnetic disk, an optical disk, amagneto-optic disk, a solid state disk, etc.), a compact disc (CD), adigital versatile disc (DVD), a floppy disk, a cartridge, a magnetictape, and/or another type of computer-readable medium, along with acorresponding drive.

Input component 350 may include a component that permits device 300 toreceive information, such as via user input (e.g., a touch screendisplay, a keyboard, a keypad, a mouse, a button, a switch, amicrophone, etc.). Additionally, or alternatively, input component 350may include a sensor for sensing information (e.g., a global positioningsystem (GPS) component, an accelerometer, a gyroscope, an actuator,etc.). Output component 360 may include a component that provides outputinformation from device 300 (e.g., a display, a speaker, one or morelight-emitting diodes (LEDs), etc.).

Communication interface 370 may include a transceiver-like component(e.g., a transceiver, a separate receiver and transmitter, etc.) thatenables device 300 to communicate with other devices, such as via awired connection, a wireless connection, or a combination of wired andwireless connections. Communication interface 370 may permit device 300to receive information from another device and/or provide information toanother device. For example, communication interface 370 may include anEthernet interface, an optical interface, a coaxial interface, aninfrared interface, a radio frequency (RF) interface, a universal serialbus (USB) interface, a Wi-Fi interface, a cellular network interface, orthe like.

Device 300 may perform one or more processes described herein. Device300 may perform these processes in response to processor 320 executingsoftware instructions stored by a computer-readable medium, such asmemory 330 and/or storage component 340. A computer-readable medium isdefined herein as a non-transitory memory device. A memory deviceincludes memory space within a single physical storage device or memoryspace spread across multiple physical storage devices.

Software instructions may be read into memory 330 and/or storagecomponent 340 from another computer-readable medium or from anotherdevice via communication interface 370. When executed, softwareinstructions stored in memory 330 and/or storage component 340 may causeprocessor 320 to perform one or more processes described herein.Additionally, or alternatively, hardwired circuitry may be used in placeof or in combination with software instructions to perform one or moreprocesses described herein. Thus, implementations described herein arenot limited to any specific combination of hardware circuitry andsoftware.

The number and arrangement of components shown in FIG. 3 are provided asan example. In practice, device 300 may include additional components,fewer components, different components, or differently arrangedcomponents than those shown in FIG. 3 . Additionally, or alternatively,a set of components (e.g., one or more components) of device 300 mayperform one or more functions described as being performed by anotherset of components of device 300.

FIG. 4 is a flow chart of an example process 400 for generating a globalclassification model for raw material identification based on a supportvector machine classifier. In some implementations, one or more processblocks of FIG. 4 may be performed by control device 210. In someimplementations, one or more process blocks of FIG. 4 may be performedby another device or a group of devices separate from or includingcontrol device 210, such as spectrometer 220.

As shown in FIG. 4 , process 400 may include causing a set ofspectroscopic measurements to be performed on a training set (block410). For example, control device 210 may cause spectrometer 220 toperform a set of spectroscopic measurements on a training set of samplesto determine a spectrum for each sample of the training set. Thetraining set may refer to a set of samples of one or more knowncompounds, which are utilized to generate a global classification model.For example, the training set may include one or more versions of a setof compounds (e.g., one or more versions manufactured by differentmanufacturers to control for manufacturing differences). In someimplementations, the training set may be selected based on an expectedset of compounds for which RMID is to be performed. For example, whenRMID is expected to be performed for pharmaceutical compounds, thetraining set may include a set of samples of active pharmaceuticalingredients (APIs), excipients, or the like. In some implementations,the training set may be selected to include a particular quantity ofsamples for each type of compound. For example, the training set may beselected to include multiple samples (e.g., 5 samples, 10 samples, 15samples, 50 samples, etc.) of a particular compound. In this way,control device 210 can be provided with a threshold quantity of spectraassociated with a particular type of compound, thereby facilitatinggeneration of a class, for a classification model (e.g., a globalclassification model, a local classification model, etc.), to whichunknown samples can be accurately assigned.

In some implementations, control device 210 may cause multiplespectrometers 220 to perform the set of spectroscopic measurements toaccount for one or more physical conditions. For example, control device210 may cause a first spectrometer 220 and a second spectrometer 220 toperform a set of vibrational spectroscopic measurements using NIRspectroscopy. Additionally, or alternatively, control device 210 maycause the set of spectroscopic measurements to be performed at multipletimes, in multiple locations, under multiple different laboratoryconditions, or the like. In this way, control device 210 reduces alikelihood that a spectroscopic measurement is inaccurate as a result ofa physical condition relative to causing the set of spectroscopicmeasurements to be performed by a single spectrometer 220.

As further shown in FIG. 4 , process 400 may include receivinginformation identifying results of the set of spectroscopic measurements(block 420). For example, control device 210 may receive informationidentifying the results of the set of spectroscopic measurements. Insome implementations, control device 210 may receive informationidentifying a set of spectra corresponding to samples of the trainingset. For example, control device 210 may receive information identifyinga particular spectrum, which was observed when spectrometer 220performed spectroscopy on the training set. Additionally, oralternatively, control device 210 may receive other information asresults of the set of spectroscopic measurements. For example, controldevice 210 may receive information associated with identifying anabsorption of energy, an emission of energy, a scattering of energy, orthe like.

In some implementations, control device 210 may receive the informationidentifying the results of the set of spectroscopic measurements frommultiple spectrometers 220. For example, control device 210 may controlfor physical conditions, such as a difference between the multiplespectrometers 220, a potential difference in a lab condition, or thelike, by receiving spectroscopic measurements performed by multiplespectrometers 220, performed at multiple different times, performed atmultiple different locations, or the like.

As further shown in FIG. 4 , process 400 may include generating a globalclassification model associated with a particular classifier based onthe information identifying the results of the set of spectroscopicmeasurements (block 430). For example, control device 210 may generatethe global classification model associated with an SVM classifiertechnique based on the information identifying the results of the set ofspectroscopic measurements. In some implementations, control device 210may perform a set of classifications to generate the globalclassification model. For example, control device 210 may assign a setof spectra, identified by the results of the set of spectroscopicmeasurements, into a set of classes based on using an SVM technique.

SVM may refer to a supervised learning model that performs patternrecognition for classification. In some implementations, control device210 may utilize a particular type of kernel function when generating theglobal classification model using the SVM technique. For example,control device 210 may utilize a radial basis function (RBF) (e.g.,termed SVM-rbf) type of kernel function, a linear function (e.g., termedSVM-linear and termed hier-SVM-linear when utilized for a multi-stageclassification technique) type of kernel function, a sigmoid functiontype of kernel function, a polynomial function type of kernel function,an exponential function type of kernel function, or the like. In someimplementations, control device 210 may utilize a particular type ofSVM, such as a probability value based SVM (e.g., classification basedon determining a probability that a sample is a member of a class of aset of classes), a decision value based SVM (e.g., classificationutilizing a decision function to vote for a class, of a set of classes,as being the class of which the sample is a member), or the like.

In some implementations, control device 210 may select the particularclassifier that is to be utilized for generating the globalclassification model from a set of classification techniques. Forexample, control device 210 may generate multiple classification modelscorresponding to multiple classifiers and may test the multipleclassification models, such as by determining a transferability of eachmodel (e.g., an extent to which a classification model generated basedon spectroscopic measurements performed on a first spectrometer 220 isaccurate when applied to spectroscopic measurements performed on asecond spectrometer 220), a large-scale classification accuracy (e.g.,an accuracy with which a classification model can be utilized toconcurrently classify a quantity of samples that satisfy a threshold),or the like. In this case, control device 210 may select an SVMclassifier (e.g., hier-SVM-linear) based on determining that the SVMclassifier is associated with superior transferability and/orlarge-scale classification accuracy relative to other classifiers.

In some implementations, control device 210 may generate the globalclassification model based on information identifying samples of thetraining set. For example, control device 210 may utilize theinformation identifying the types of compounds represented by samples ofthe training set to identify classes of spectra with types of compounds.In some implementations, control device 210 may train the globalclassification model when generating the global classification model.For example, control device 210 may cause the model to be trained usinga portion of the set of spectroscopic measurements. Additionally, oralternatively, control device 210 may perform an assessment of theglobal classification model. For example, control device 210 may verifythe global classification model (e.g., for predictive strength)utilizing another portion of the set of spectroscopic measurements. Insome implementations, control device 210 may verify the globalclassification model using a multi-stage classification technique. Forexample, control device 210 may determine that the global classificationmodel is accurate when utilized in association with one or more localclassification models, as described herein with regard to FIG. 6 . Inthis way, control device 210 ensures that the global classificationmodel is generated with a threshold accuracy prior to providing theglobal classification model for utilization by other control devices 210associated with other spectrometers 220.

In some implementations, control device 210 may provide the globalclassification model to the other control devices 210 associated withthe other spectrometers 220 after generating the global classificationmodel. For example, a first control device 210 may generate the globalclassification model and may provide the global classification model toa second control device 210 for utilization. In this case, the secondcontrol device 210 may store the global classification model, and mayutilize the global classification model in generating one or more localclassification models and classifying one or more samples of an unknownset, as described herein with regard to FIG. 6 . Additionally, oralternatively, control device 210 may store the global classificationmodel for utilization by control device 210 in generating the one ormore local classification models and classifying the one or moresamples. In this way, control device 210 provides the globalclassification model for utilization in RMID of unknown samples.

Although FIG. 4 shows example blocks of process 400, in someimplementations, process 400 may include additional blocks, fewerblocks, different blocks, or differently arranged blocks than thosedepicted in FIG. 4 . Additionally, or alternatively, two or more of theblocks of process 400 may be performed in parallel.

FIG. 5 is a diagram of an example implementation 500 relating to exampleprocess 400 shown in FIG. 4 . FIG. 5 shows an example of generating aglobal classification model for raw material identification based on asupport vector machine classifier.

As shown in FIG. 5 , control device 210-1 transmits information tospectrometer 220-1 to instruct spectrometer 220-1 to perform a set ofspectroscopic measurements on training set 510. Assume that training set510 includes a first set of training samples (e.g., measurements ofwhich are utilized for training a global classification model) and asecond set of verification samples (e.g., measurements of which areutilized for verifying accuracy of the global classification model). Asshown by reference number 515, spectrometer 220-1 performs the set ofspectroscopic measurements on the training set based on receiving theinstruction. As shown by reference number 520, control device 210-1receives a first set of spectra for the training samples and a secondset of spectra for the verification samples. Assume that control device210-1 stores information identifying each sample of training set 510.

With regard to FIG. 5 , assume that control device 210-1 has selected toutilize a hier-SVM-linear classifier for generating the globalclassification model (e.g., based on testing the hier-SVM-linearclassifier against one or more other classifiers). As shown by referencenumber 525, control device 210-1 trains the global classification modelusing the hier-SVM-linear classifier and the first set of spectra andverifies the global classification model using the hier-SVM-linearclassifier and the second set of spectra. Assume that control device210-1 determines that the global classification model satisfies averification threshold (e.g., has an accuracy that exceeds theverification threshold). As shown by reference number 530, controldevice 210-1 provides the global classification model to control device210-2 (e.g., for utilization when performing RMID on spectroscopicmeasurements performed by spectrometer 220-2) and to control device210-3 (e.g., for utilization when performing RMID on spectroscopicmeasurements performed by spectrometer 220-3).

As indicated above, FIG. 5 is provided merely as an example. Otherexamples are possible and may differ from what was described with regardto FIG. 5 .

In this way, control device 210 facilitates generation of a globalclassification model based on a selected classification technique (e.g.,selected based on model transferability, large-scale classificationaccuracy, or the like) and distribution of the global classificationmodel for utilization by one or more other control devices 210associated with one or more spectrometers 220. Moreover, control device210 reduces costs and time requirements relative to generating theglobal classification model on each control device 210 that is toperform RMID.

FIG. 6 is a flow chart of an example process 600 for performing rawmaterial identification using a multi-stage classification technique. Insome implementations, one or more process blocks of FIG. 6 may beperformed by control device 210. In some implementations, one or moreprocess blocks of FIG. 6 may be performed by another device or a groupof devices separate from or including control device 210, such asspectrometer 220.

As shown in FIG. 6 , process 600 may include receiving informationidentifying results of a set of spectroscopic measurements performed onan unknown set (block 610). For example, control device 210 may receiveinformation identifying the results of the set of spectroscopicmeasurements performed on the unknown set by spectrometer 220. Theunknown set may include a set of samples (e.g., unknown samples) forwhich RMID is to be performed. For example, control device 210 may causespectrometer 220 to perform the set of spectroscopic measurements on theset of samples, and may receive information identifying a set of spectracorresponding to the set of samples. In some implementations, controldevice 210 may receive the information identifying the results frommultiple spectrometers 220. For example, control device 210 may causemultiple spectrometers 220 to perform the set of spectroscopicmeasurements on the unknown set (e.g., the same set of samples), and mayreceive information identifying a set of spectra corresponding tosamples of the unknown set. Additionally, or alternatively, controldevice 210 may receive information identifying results of a set ofspectroscopic measurements performed at multiple times, in multiplelocations, or the like, and may classify a particular sample based onthe set of spectroscopic measurements performed at the multiple times,in the multiple locations, or the like (e.g., based on averaging the setof spectroscopic measurements or based on another technique). In thisway, control device 210 may account for physical conditions that mayaffect results of the set of spectroscopic measurements.

Additionally, or alternatively, control device 210 may cause a firstspectrometer 220 to perform a first portion of the set of spectroscopicmeasurements on a first portion of the unknown set and may cause asecond spectrometer 220 to perform a second portion of the set ofspectroscopic measurements on a second portion of the unknown set. Inthis way, control device 210 may reduce a quantity of time to performthe set of spectroscopic measurements relative to causing all thespectroscopic measurements to be performed by a single spectrometer 220.

As further shown in FIG. 6 , process 600 may include performing a firstclassification based on the results of the set of spectroscopicmeasurements and a global classification model (block 620). For example,control device 210 may perform the first classification based on theresults and the global classification model. In some implementations,control device 210 may receive the global classification model forutilization in performing the first classification. For example, a firstcontrol device 210 may generate the global classification model (e.g.,using an SVM-linear classifier and based on a set of spectroscopicmeasurements performed on a training set, as described herein withregard to FIG. 4 ), and may provide the global classification model to asecond control device 210 for performing the first classification of theunknown set. Additionally, or alternatively, control device 210 maygenerate the global classification model (e.g., using the SVM-linearclassifier and based on a set of spectroscopic measurements performed ona training set, as described herein with regard to FIG. 4 ), and mayutilize the global classification model for performing the firstclassification of the unknown set.

In some implementations, control device 210 may assign a particularsample of the unknown set to a particular class, of a set of classes ofthe global classification model, when performing the firstclassification. For example, control device 210 may determine that aparticular spectrum associated with the particular sample corresponds toa class of compounds (e.g., cellulose compounds, lactose compounds,caffeine compounds, etc.) based on the global classification model, andmay assign the particular sample to the particular class. In someimplementations, control device 210 may assign the particular samplebased on a confidence metric. For example, control device 210 maydetermine, based on the global classification model, a probability thatthe particular spectrum is associated with each class of the globalclassification model. In this case, control device 210 may assign theparticular sample to the particular class based on a particularprobability for the particular class exceeding other probabilitiesassociated with other classes. In this way, control device 210determines a type of compound that the sample is associated with,thereby identifying the sample.

Additionally, or alternatively, control device 210 may determine anotherconfidence metric associated with the first classification. For example,when control device 210 assigns a particular sample to a particularclass when performing the first classification, control device 210 maydetermine a difference between the probability that the particularsample is associated with the particular class (e.g., termed a maximumprobability) and another probability that the particular sample isassociated with a next most likely class (e.g., termed a second maximumprobability). In this way, control device 210 determines a confidenceassociated with assigning a particular sample to a particular classrather than a next most likely class. When the maximum probability andthe second maximum probability are both relatively high and relativelysimilar (e.g., the maximum probability is 48% and the second maximumprobability is 47% rather than the maximum probability being 48% and thesecond maximum probability being 4%), control device 210 provides abetter indication of assignment accuracy by providing the differencebetween the maximum probability and the second maximum probability. Inother words, in the first case of the maximum probability being 48% andthe second maximum probability being 47%, assignment accuracy to themost likely class is relatively lower than in the second case of themaximum probability being 48% and the second maximum probability being4%, although the maximum probability is the same for both cases.Providing a metric of the difference between the maximum probability andthe second maximum probability can distinguish the two cases.

As further shown in FIG. 6 , process 600 may include generating a localclassification model based on the first classification (block 630). Forexample, control device 210 may generate the local classification modelbased on the first classification. The local classification model mayrefer to an in situ classification model generated using an SVMclassification technique (e.g., SVM-rbf, SVM-linear, etc.; probabilityvalue based SVM, decision value based SVM, etc.; or the like) based onconfidence metrics associated with the first classification. Forexample, when a set of confidence metrics are determined for a spectrumof a sample based on the global classification model, control device 210may select a subset of classes of the global classification model basedon respective probabilities that the spectrum is associated with eachclass of the global classification model. In this case, control device210 may generate the local classification model using the SVMclassification technique and based on the selected subset of classes.

In some implementations, an autoscaling pretreatment procedure may beperformed. For example, to generate the local classification model,control device 210 may perform the autoscaling pretreatment procedurefor the spectra associated with a subset of classes of the globalclassification model selected for the local classification model. Insome implementations, the autoscaling pretreatment procedure may beperformed for another classification, such as a first classificationusing the global classification model. In some implementations, anothertype of pretreatment procedure may be performed, such as a centeringprocedure, a transformation, or the like.

In some implementations, the subset of classes may include a thresholdquantity of classes associated with the highest respective confidencemetrics. For example, control device 210 may select ten classes of theglobal classification model based on the ten classes being associatedwith higher respective probabilities that the spectrum of the sample isassociated therewith than with other classes of the globalclassification model, and may generate the local model based on the tenclasses. In some implementations, control device 210 may select thesubset of classes based on the subset of classes satisfying a threshold.For example, control device 210 may select each class that is associatedwith a probability satisfying the threshold. Additionally, oralternatively, control device 210 may select a threshold quantity ofclasses that each satisfy the threshold. For example, control device 210may select up to ten classes provided that the ten classes each satisfya minimum threshold probability. Additionally, or alternatively, controldevice 210 may select another quantity of classes (e.g., two classes,five classes, twenty classes, or the like).

In some implementations, control device 210 may generate multiple localclassification models. For example, control device 210 may generate afirst local classification model for a first spectrum of a first sampleof the unknown set and a second local classification model for a secondspectrum of a second sample of the unknown set. In this way, controldevice 210 may facilitate concurrent classification of multiple unknownsamples by concurrently operating on the multiple unknown samples usingthe multiple local classification models.

In some implementations, control device 210 may generate aquantification model based on performing the first classification usingthe global classification model. For example, when control device 210 isbeing utilized to determine a concentration of an substance in anunknown sample, and multiple unknown samples are associated withdifferent quantification models for determining the concentration of thesubstance, control device 210 may utilize the first classification toselect a class for the unknown sample, and may select a localquantification model associated with the class of the unknown sample. Inthis way, control device 210 utilizes hierarchical classification andquantification models to improve raw material identification and/orquantification thereof.

As further shown in FIG. 6 , process 600 may include performing a secondclassification based on the results of the set of spectroscopicmeasurements and the local classification model (block 640). Forexample, control device 210 may perform the second classification basedon the results and the local classification model. In someimplementations, control device 210 may perform the secondclassification for a particular spectrum. For example, control device210 may assign the particular spectrum to a particular class based onthe local classification model. In some implementations, control device210 may determine a set of confidence metrics associated with theparticular spectrum and the local classification model. For example,control device 210 may determine a probability that the particularspectrum is associated with each class of the local classificationmodel, and may assign the particular spectrum (e.g., a particular sampleassociated with the particular spectrum) to a class with a higherprobability than other classes of the local classification model. Inthis way, control device 210 identifies a sample of the unknown set.

Additionally, or alternatively, control device 210 may determine anotherconfidence metric associated with the particular spectrum and the localclassification model. For example, when control device 210 assigns aparticular sample to a particular class when performing the secondclassification, control device 210 may determine a difference betweenthe probability that the particular sample is associated with theparticular class (e.g., a maximum probability) and another probabilitythat the particular sample is associated with a next most likely class(e.g., a second maximum probability). In this way, control device 210determines a confidence associated with assigning a particular sample toa particular class rather than a next most likely class when performingthe second classification based on the local classification model.

In some implementations, control device 210 may perform multiple secondclassifications. For example, control device 210 may perform a secondclassification for a first spectrum associated with a first sample basedon a first local classification model, and may perform another secondclassification for a second spectrum associated with a second samplebased on a second local classification model. In this way, controldevice 210 facilitates concurrent classification of multiple samples ofthe unknown set. In some implementations, control device 210 may omit aportion of samples in the unknown set from the second classification.For example, when control device 210 determines a confidence metric forassigning a particular sample to a particular class based on the globalclassification model, and the confidence metric satisfies a threshold,control device 210 may omit the particular sample from secondclassification. In this way, control device 210 may reduce resourceutilization relative to performing second classification for all samplesof the unknown set.

In some implementations, control device 210 may perform a quantificationafter performing the first classification (and/or after performing thesecond classification). For example, control device 210 may select alocal quantification model based on performing one or moreclassifications, and may perform a quantification relating to theparticular sample based selecting the local quantification model. As anexample, when performing raw material identification to determine aconcentration of a particular chemical in a plant material, where theplant material is associated with multiple quantification models (e.g.,relating to whether the plant is grown indoors or outdoors, in winter orin summer, or the like), control device 210 may perform a set ofclassifications to identify a particular quantification model. In thiscase, the control device 210 may determine that the plant is grownindoors in winter based on performing a set of classifications, and mayselect a quantification model relating to the plant being grown indoorsin winter for determining the concentration of the particular chemical.

As further shown in FIG. 6 , process 600 may include providinginformation identifying classifications for the unknown set based onperforming the second classification (block 650). For example, controldevice 210 may provide information identifying a classification for asample of the unknown set based on performing the second classification.In some implementations, control device 210 may provide informationidentifying a particular class for a particular sample. For example,control device 210 may provide information indicating that a particularspectrum associated with the particular sample is determined to beassociated with the particular class, thereby identifying the sample. Insome implementations, control device 210 may provide informationindicating a confidence metric associated with assigning the particularsample to the particular class. For example, control device 210 mayprovide information identifying a probability that the particular sampleis associated with the particular class, a difference between a maximumprobability and a second maximum probability for the particular sample,or the like. In this way, control device 210 provides informationindicating a likelihood that the particular spectrum was accuratelyassigned to the particular class.

In some implementations, control device 210 provides informationidentifying a class for multiple samples. For example, control device210 may provide information indicating that a first sample of theunknown set is associated with a first class and a second sample of theunknown set is associated with a second class. In this way, controldevice 210 provides concurrent identification of multiple samples.

In some implementations, control device 210 may provide a quantificationbased on performing a set of classifications and a quantification. Forexample, based on identifying a local quantification model, controldevice 210 may provide information identifying a concentration of asubstance in an unknown sample for which a set of classifications wereutilized to select a quantification model for determining theconcentration of the substance.

In some implementations, control device 210 may provide an outputrelating to a class of a sample. For example, control device 210 mayprovide a binary output (e.g., a yes/no output) relating to aclassification of an unknown sample for which a first set of classescorrespond to a first binary output (e.g., yes) and a second set ofclasses correspond to a second binary output (e.g., no) based onclassifying the unknown sample into one of the first set of classes orthe second set of classes. As an example, for a first set of classes(e.g., Kosher Meat, which may include Kosher Beef Strip Steak, KosherBeef Ribs, Kosher Chicken Thighs, Kosher Chicken Breasts, etc.) and asecond set of classes (e.g., Non-Kosher Meat, which may includeNon-Kosher Beef Ribs, Non-Kosher Pork, Non-Kosher Chicken Wings, etc.),control device 210 may provide an output of Kosher or Non-Kosher basedon classifying an unknown sample into a particular class of the firstset of classes or the second set of classes. As another example, controldevice 210 may utilize a set of classes relating to food beingclassified as Halal or non-Halal, and may provide an output indicatingwhether a sample corresponds to a Halal classification or a non-Halalclassification (i.e., whether an animal from which the sample wasderived was slaughtered in a Halal manner, regardless of whether othercriteria for Halal classification are met, such as religiouscertification, prayer during slaughter, or the like). In this way,control device 210 may provide a classification with a greaterlikelihood of accuracy relative to providing an identification of aparticular class when the identification of the particular class is notimportant to the user of control device 210 (e.g., a person attemptingto determine whether an item of meat is Kosher, rather than attemptingto determine the type of meat).

Although FIG. 6 shows example blocks of process 600, in someimplementations, process 600 may include additional blocks, fewerblocks, different blocks, or differently arranged blocks than thosedepicted in FIG. 6 . Additionally, or alternatively, two or more of theblocks of process 600 may be performed in parallel.

FIGS. 7A and 7B are diagrams of an example implementation 700 relatingto prediction success rates associated with example process 600 shown inFIG. 6 . FIGS. 7A and 7B show example results of raw materialidentification using a hierarchical support vector machine(hier-SVM-linear) based technique.

As shown in FIG. 7A, and by reference number 710, a set of confidencemetrics are provided for an unknown set. For each sample of the unknownset, control device 210 determines a probability that the sample isassociated with each class of the global classification model. A maximumprobability is compared with a second maximum (a next-maximum)probability for each sample of the unknown set. As shown by referencenumber 712, maximum probabilities for the unknown set range fromapproximately 5% to approximately 20%. As shown by reference number 714,second maximum probabilities for the unknown set range fromapproximately 0% to approximately 5%. As shown by reference number 716,samples of the unknown set that control device 210 incorrectlyclassified based on the global classification model are highlighted(e.g., 84 samples of 2645 samples in the unknown set are incorrectlyclassified).

As further shown in FIG. 7A, and by reference number 720, a set ofconfidence metrics are provided for the unknown set. For each sample ofthe unknown set, control device 210 determines a probability that thesample is associated with each class of a corresponding localclassification model. The maximum probability is compared with thesecond maximum (a next-maximum) probability for each sample of theunknown set. As shown by reference number 722, maximum probabilities forthe unknown set range from approximately 50% to approximately 98%. Asshown by reference number 724, second maximum probabilities for theunknown set range from approximately 2% to approximately 45%. Moreover,the probability difference between the maximum probability and thesecond maximum probability is greater than approximately 0.33 (33%) foreach sample of the unknown set except for one sample (for which theprobability difference is approximately 8% and for which a correctclassification was nonetheless performed). Based on performing a set ofclassifications, control device 210 correctly classifies all members ofthe unknown set.

With regard to FIG. 7B, when a quantity of samples in each class of aclassification model (e.g., a global classification model, a localclassification model, etc.) fails to satisfy a threshold, control device210 may determine reduced confidence metrics and associated predictionaccuracy when assigning samples of an unknown set to classes. As shownby reference number 730, when the quantity of samples in each class doesnot satisfy the threshold, control device 210 misclassifies 128 samplesout of 4451 samples after performing first classification based on aglobal classification model and second classification based on a set oflocal classification models (e.g., a probability based SVM classifierlocal classification models) for the unknown set. As shown by referencenumber 740, when control device 210 performs another firstclassification based on the global classification model and anothersecond classification based on another set of local classificationmodels (e.g., decision value based SVM classifier local classificationmodels), control device 210 misclassifies 1 sample out of 4451 samples.In this way, control device 210 utilizes a decision value based SVMclassifier to improve classification accuracy relative to a probabilitybased SVM classifier.

As indicated above, FIGS. 7A and 7B are provided merely as an example.Other examples are possible and may differ from what was described withregard to FIGS. 7A and 7B.

FIGS. 8A and 8B are diagrams of an example implementation 800 relatingto example process 600 shown in FIG. 6 . FIGS. 8A and 8B show an examplerelating to utilizing a classification and a quantification technique.

With regard to FIGS. 8A and 8B and other example implementationsdescribed herein, a regulation may require that tetrahydrocannabinol(THC) content in commercially grown hemp not exceed a threshold (e.g.,0.3%), and may require a grower to destroy a crop that exceeds thethreshold. A laboratory test technique may be associated with anexcessive turnaround time (e.g., 7 to 10 days), which may result inplant THC content changing from acceptable (e.g., at a time of sampling)to unacceptable (e.g., at a time of test results). Thus, a grower mayutilize spectrometer 220 to perform a spectroscopic measurement of thecannabis sample to determine a THC content or another characteristicwith a reduced amount of time relative to the laboratory test technique.

In this case, utilizing a local classification model may improveaccuracy, as environment conditions, plant genetics, or the like mayresult in different quantification models being associated withdifferent classes of plants. For example, a cannabis plant grown indoorsmay be associated with a first regression model to determine THC contentand a cannabis plant grown outdoors may be associated with a secondregression model to determine THC content. The grower may utilizespectrometer 220 and control device 210 to determine a class of thecannabis plant, select a quantification model for quantifying acharacteristic of the cannabis plant (e.g., THC content), and mayutilize the quantification model to quantify the characteristic, asdescribed herein.

As shown in FIG. 8A, and by reference number 805, control device 210 mayreceive a spectroscopic measurement for a cannabis sample. As shown inFIG. 8A, and by reference number 810, and in more detail in FIG. 8B,control device 210 may obtain, from a data structure, stored informationidentifying a set of potential classes for the cannabis sample and a setof models (e.g., classification models or quantification models) forclassifying and/or quantifying the cannabis sample based on a class towhich the cannabis sample is assigned.

As shown in FIG. 8B, and by reference numbers 811-814, control device210 may receive information identifying a set of classification modelsor quantification models relating to a set of potential classes for thecannabis sample. For example, control device 210 may receive informationidentifying a group of quantification models for a sample obtained froma live plant class, such as a moisture percentage or a THC percentagequantification model (e.g., a set of THC percentage quantificationmodels relating to determining whether a threshold THC percentage issatisfied, such as satisfying a red threshold indicating forbidden, agreen threshold indicating acceptable, or the like). In someimplementations, control device 210 may receive a classification modelfor determining whether a threshold percentage of THC content is present(e.g., a red threshold classification model, a green thresholdclassification model, or the like), and may receive a particular type ofquantification model (e.g., an ordinal model) for quantifying the THCcontent present at the threshold level with a greater accuracy than aquantification model associated with quantifying any THC content.

Additionally, or alternatively, control device 210 may obtain aclassification model for a dry plant class, such as a strainclassification model, or a quantification model for a dry plant class,such as a moisture percentage, a THC acid (THCA) percentage, a THCpercentage, or a relative cannabinoid profile (e.g., a relativepercentage of cannabidiol (CBD), CBD acid (CBDA), cannabichromene (CBC),cannabigerol (CBG), cannabinol (CBN), or the like) quantification model.Additionally, or alternatively, control device 210 may obtain aclassification model for a concentrate class, such as an extractionmethod or winterization classification model, or a quantification modelfor a concentrate, such as a moisture percentage, a THC percentage, or acannabinoid profile quantification model. Additionally, oralternatively, control device 210 may obtain a quantification model fora tincture, such as a moisture percentage, a THC percentage, acannabinoid profile, a cannabinoid ratio, or an oil suspensionpercentage quantification model.

Returning to FIG. 8A, and as shown by reference number 815, controldevice 210 may utilize one or more classifications (e.g., a globalclassification model and/or a local classification model) to perform aqualitative classification of the cannabis sample using one or more ofthe classification models 811-814. As shown by reference number 820,control device 210 may determine a classification of the cannabis samplebased on performing the qualitative classification of the cannabissample. As shown by reference number 825, control device 210 may provideinformation identifying one or more qualitative results relating to thecannabis sample, such as an extraction method classification, a strainclassification, or the like. As shown by reference numbers 830, controldevice 210 may utilize one or more quantification models (e.g., aregression model, an ordinal model, or the like) related to thequalitative results, such as a moisture percentage quantification modelrelating to one or more sub-classes of a strain (e.g., a most likelysub-class, a second most likely sub-class, or the like) determined usinga strain classification model, to perform a quantitative analysis of thecannabis sample. As shown by reference number 835, control device 210may provide results of the quantitative analysis of the cannabis sample.In this way, control device 210 and spectrometer 220 enable rapidclassification and quantification relating to cannabis samples and/oranother type of sample.

As indicated above, FIGS. 8A and 8B are provided merely as an example.Other examples are possible and may differ from what was described withregard to FIGS. 8A and 8B.

In this way, control device 210 utilizes a global classification modeland a local classification model generated based on the globalclassification model to perform RMID.

The foregoing disclosure provides illustration and description, but isnot intended to be exhaustive or to limit the implementations to theprecise form disclosed. Modifications and variations are possible inlight of the above disclosure or may be acquired from practice of theimplementations.

Some implementations are described herein in connection with thresholds.As used herein, satisfying a threshold may refer to a value beinggreater than the threshold, more than the threshold, higher than thethreshold, greater than or equal to the threshold, less than thethreshold, fewer than the threshold, lower than the threshold, less thanor equal to the threshold, equal to the threshold, etc.

It will be apparent that systems and/or methods, described herein, maybe implemented in different forms of hardware, firmware, or acombination of hardware and software. The actual specialized controlhardware or software code used to implement these systems and/or methodsis not limiting of the implementations. Thus, the operation and behaviorof the systems and/or methods were described herein without reference tospecific software code—it being understood that software and hardwarecan be designed to implement the systems and/or methods based on thedescription herein.

Even though particular combinations of features are recited in theclaims and/or disclosed in the specification, these combinations are notintended to limit the disclosure of possible implementations. In fact,many of these features may be combined in ways not specifically recitedin the claims and/or disclosed in the specification. Although eachdependent claim listed below may directly depend on only one claim, thedisclosure of possible implementations includes each dependent claim incombination with every other claim in the claim set.

No element, act, or instruction used herein should be construed ascritical or essential unless explicitly described as such. Also, as usedherein, the articles “a” and “an” are intended to include one or moreitems, and may be used interchangeably with “one or more.” Furthermore,as used herein, the term “set” is intended to include one or more items(e.g., related items, unrelated items, a combination of related itemsand unrelated items, etc.), and may be used interchangeably with “one ormore.” Where only one item is intended, the term “one” or similarlanguage is used. Also, as used herein, the terms “has,” “have,”“having,” or the like are intended to be open-ended terms. Further, thephrase “based on” is intended to mean “based, at least in part, on”unless explicitly stated otherwise.

What is claimed is:
 1. A device, comprising: a memory; and one or moreprocessors configured to: receive a spectroscopic measurement for acannabis sample; perform a qualitative classification of the cannabissample; perform, based on the spectroscopic measurement, a quantitativeanalysis of the cannabis sample by utilizing a quantification modelrelated to the qualitative classification; and provide one or moreresults of the quantitative analysis of the cannabis sample.
 2. Thedevice of claim 1, wherein the quantification model quantifiestetrahydrocannabinol (THC) content present at a threshold level.
 3. Thedevice of claim 1, wherein the one or more processors are furtherconfigured to: select, based on the qualitative classification, thequantification model from a first regression model and a secondregression model.
 4. The device of claim 3, wherein the first regressionmodel is for a first type of cannabis plant, and wherein the secondregression model is for a second type of cannabis plant.
 5. The deviceof claim 4, wherein the first type of cannabis plant is a cannabis plantgrown indoors, and wherein the second type of cannabis plant is acannabis plant grown outdoors.
 6. The device of claim 1, wherein the oneor more processors are further configured to: obtain, from a datastructure, stored information identifying: a set of potential classesfor the cannabis sample, and a set of models that include thequantification model.
 7. The device of claim 1, wherein the qualitativeclassification is performed using one or more classification models thatinclude one or more of: a classification model for a dry plant class, ora classification model for a concentrate class.
 8. The device of claim1, wherein the quantification model comprises a quantification model fora tincture.
 9. The device of claim 1, wherein the qualitativeclassification is performed using a local classification model that isbased on a global classification model.
 10. A method, comprising:receiving, by a device, a spectroscopic measurement for a cannabissample; performing, by the device, a qualitative classification of thecannabis sample; performing, by the device, a quantitative analysis ofthe cannabis sample based on the spectroscopic measurement and thequalitative classification; and providing, by the device, one or moreresults of the quantitative analysis of the cannabis sample.
 11. Themethod of claim 10, further comprising: selecting, based on thequalitative classification, a quantification model from a firstregression model and a second regression model, wherein the quantitativeanalysis is performed using the quantification model.
 12. The method ofclaim 11, wherein the first regression model is for a first type ofcannabis plant, and wherein the second regression model is for a secondtype of cannabis plant.
 13. The method of claim 12, wherein the firsttype of cannabis plant is a cannabis plant grown indoors, and whereinthe second type of cannabis plant is a cannabis plant grown outdoors.14. The method of claim 10, further comprising: obtaining, from a datastructure, stored information identifying: a set of potential classesfor the cannabis sample, and a set of models that include aquantification model, wherein the quantitative analysis is performedusing the quantification model.
 15. The method of claim 10, wherein thequalitative classification is performed using one or more classificationmodels that include one or more of: a classification model for a dryplant class, or a classification model for a concentrate class.
 16. Themethod of claim 10, wherein the quantitative analysis is performed usinga quantification model that is selected based on the qualitativeclassification, and wherein the quantification model comprises aquantification model for a tincture.
 17. The method of claim 10, whereinthe qualitative classification is performed using a local classificationmodel that is based on a global classification model.
 18. Anon-transitory computer-readable medium storing a set of instructions,the set of instructions comprising: one or more instructions that, whenexecuted by one or more processors of a device, cause the device to:receive a spectroscopic measurement for a cannabis sample; perform,based on the spectroscopic measurement, a quantitative analysis of thecannabis sample by utilizing a quantification model; and provide one ormore results of the quantitative analysis of the cannabis sample. 19.The non-transitory computer-readable medium of claim 18, wherein thequantification model quantifies tetrahydrocannabinol (THC) contentpresent at a threshold level.
 20. The non-transitory computer-readablemedium of claim 18, wherein the one or more instructions further causethe device to: select the quantification model from a first regressionmodel and a second regression model, wherein the first regression modelis for a cannabis plant grown indoors, and wherein the second regressionmodel is for a cannabis plant grown outdoors.